104 research outputs found

    Julia: A Fresh Approach to Numerical Computing

    Get PDF
    Bridging cultures that have often been distant, Julia combines expertise from the diverse fields of computer science and computational science to create a new approach to numerical computing. Julia is designed to be easy and fast. Julia questions notions generally held as "laws of nature" by practitioners of numerical computing: 1. High-level dynamic programs have to be slow. 2. One must prototype in one language and then rewrite in another language for speed or deployment, and 3. There are parts of a system for the programmer, and other parts best left untouched as they are built by the experts. We introduce the Julia programming language and its design --- a dance between specialization and abstraction. Specialization allows for custom treatment. Multiple dispatch, a technique from computer science, picks the right algorithm for the right circumstance. Abstraction, what good computation is really about, recognizes what remains the same after differences are stripped away. Abstractions in mathematics are captured as code through another technique from computer science, generic programming. Julia shows that one can have machine performance without sacrificing human convenience.Comment: 37 page

    Array operators using multiple dispatch: a design methodology for array implementations in dynamic languages

    Get PDF
    Arrays are such a rich and fundamental data type that they tend to be built into a language, either in the compiler or in a large low-level library. Defining this functionality at the user level instead provides greater flexibility for application domains not envisioned by the language designer. Only a few languages, such as C++ and Haskell, provide the necessary power to define nn-dimensional arrays, but these systems rely on compile-time abstraction, sacrificing some flexibility. In contrast, dynamic languages make it straightforward for the user to define any behavior they might want, but at the possible expense of performance. As part of the Julia language project, we have developed an approach that yields a novel trade-off between flexibility and compile-time analysis. The core abstraction we use is multiple dispatch. We have come to believe that while multiple dispatch has not been especially popular in most kinds of programming, technical computing is its killer application. By expressing key functions such as array indexing using multi-method signatures, a surprising range of behaviors can be obtained, in a way that is both relatively easy to write and amenable to compiler analysis. The compact factoring of concerns provided by these methods makes it easier for user-defined types to behave consistently with types in the standard library.Comment: 6 pages, 2 figures, workshop paper for the ARRAY '14 workshop, June 11, 2014, Edinburgh, United Kingdo

    Julia: A Fresh Approach to Numerical Computing

    Get PDF
    Bridging cultures that have often been distant, Julia combines expertise from the diverse fields of computer science and computational science to create a new approach to numerical computing. Julia is designed to be easy and fast and questions notions generally held to be “laws of nature" by practitioners of numerical computing: \beginlist \item High-level dynamic programs have to be slow. \item One must prototype in one language and then rewrite in another language for speed or deployment. \item There are parts of a system appropriate for the programmer, and other parts that are best left untouched as they have been built by the experts. \endlist We introduce the Julia programming language and its design---a dance between specialization and abstraction. Specialization allows for custom treatment. Multiple dispatch, a technique from computer science, picks the right algorithm for the right circumstance. Abstraction, which is what good computation is really about, recognizes what remains the same after differences are stripped away. Abstractions in mathematics are captured as code through another technique from computer science, generic programming. Julia shows that one can achieve machine performance without sacrificing human convenience.National Science Foundation (U.S.) (CCF-0832997)National Science Foundation (U.S.) (DMS-1016125)National Science Foundation (U.S.) (DMS-1312831

    CFDEM® modelling of particle coating in a three-dimensional prismatic spouted bed

    Get PDF
    Particles which are difficult to handle in fluidized beds, such as big and non-spherical or small and co-/adhesive ones, can be fluidized in spouted beds. Nowadays, spouted bed processes are used for e.g. drying, spray granulation, encapsulation, and coating. Enhanced heat and mass transfer and intensive particle circulation allow a homogeneous distribution of the coating suspension on the particles accompanied by reduced agglomeration tendency. In the considered prismatic spouted bed the fluidization gas enters the bed chamber through two adjustable inlet slots. The coating suspension is sprayed via a two-fluid-nozzle in bottom-spray configuration (figure 1). The simulation of the spouted bed process was performed by means of the open source software CFDEM® coupling-PUBLIC, which combines the CFD-tool OpenFOAM® with the DEM-package LIGGGHTS® (1). The simulation results were visualized in ParaView (figure 2). Required input parameters for simulation, as e.g. the restitution coefficient, friction coefficient and Young’s modulus, were approximated with several experimental set-ups. Additionally, experiments were performed for validation of simulation results. Different turbulence models were investigated. Regarding the coating process, a spray zone was implemented in the simulations, whereby a self-written post-processing tool allowed the calculation of residence times of single particles in the spray zone. With this information a deterministic and physics-based simulation of the particle growth kinetics (growth rate) is possible. With regard to a feasible simulation time, the simulations were parallelized and a coarse-grain approach was used in order to handle a high amount of particles. Simulation results were in good agreement with experimental data. REFERENCES C. Goniva, C. Kloss, N.G. Deen, J.A.M. Kuipers and S. Pirker. Influence of Rolling Friction Modelling on Single Spout Fluidized Bed Simulations. Particuology, DOI 10.1016/j.partic.2012.05.002, 2012. Please click Additional Files below to see the full abstract

    Novel algebras for advanced analytics in Julia

    Get PDF
    A linear algebraic approach to graph algorithms that exploits the sparse adjacency matrix representation of graphs can provide a variety of benefits. These benefits include syntactic simplicity, easier implementation, and higher performance. One way to employ linear algebra techniques for graph algorithms is to use a broader definition of matrix and vector multiplication. We demonstrate through the use of the Julia language system how easy it is to explore semirings using linear algebraic methodologies

    Developing plant protection concepts for organic farming – results from research for practicioners

    Get PDF
    Die Ausweitung des Ökologischen Landbaus erfordert umfangreiche und praxisnahe Forschungen zur Ertragsstabilität. Dabei spielt die Gesunderhaltung der Pflanze und die Qualität der Ernteprodukte eine wichtige Rolle. In dem Beitrag wird die Bedeutung der Dauerfeldver­suche des Julius Kühn-Institutes in Dahnsdorf (Land Brandenburg) für diese Aufgabe dargestellt. Die Maßnahmen zur Unkrautkontrolle, zur Kartoffelkäferbekämpfung (Leptinotarsa decemlineata Say) und zur Kupferminimierung bei der Krautfäuleregulierung (Phytophthora infestans (Mont.) De Bary) wurden im System einer für den Ökolandbau typischen Fruchtfolge und nach EU-Ökorichtlinien geprüft. Die Vorteile einer Bewirtschaftung im Ökolandbau auf die Bodenaktivität, Häufigkeit und Artenvielfalt der Insektengemeinschaften allgemein, konnte auch unter kleinräumigen Bedingungen eines Versuchsfeldes bestätigt werden.The expansion of organic farming requires intensive and applied research on yield stability. Plant health of the plant and the quality of the harvested products play an important role here. The article describes the importance of the long-term field trials of the Julius Kühn-Institut in Dahnsdorf (State of Brandenburg) for this task. The measures for weed control, for potato beetle control (Leptinotarsa decemlineata Say) and for copper minimization in the regulation of late blight (Phytophthora infestans (Mont.) De Bary) were tested in the system of a crop rota­tion typical for organic farming and according to EU orga­nic guidelines. The benefits of organic farming on soil activity, abundance and biodiversity of insect communities in general could be confirmed even under small-scale conditions of an experimental field

    Reception Test of Petals for the End Cap TEC+ of the CMS Silicon Strip Tracker

    Get PDF
    The silicon strip tracker of the CMS experiment has been completed and was inserted into the CMS detector in late 2007. The largest sub system of the tracker are its end caps, comprising two large end caps (TEC) each containing 3200 silicon strip modules. To ease construction, the end caps feature a modular design: groups of about 20 silicon modules are placed on sub-assemblies called petals and these self-contained elements are then mounted onto the TEC support structures. Each end cap consists of 144 such petals, which were built and fully qualified by several institutes across Europe. Fro

    Integration of the End Cap TEC+ of the CMS Silicon Strip Tracker

    Get PDF
    The silicon strip tracker of the CMS experiment has been completed and inserted into the CMS detector in late 2007. The largest sub-system of the tracker is its end cap system, comprising two large end caps (TEC) each containing 3200 silicon strip modules. To ease construction, the end caps feature a modular design: groups of about 20 silicon modules are placed on sub-assemblies called petals and these self-contained elements are then mounted into the TEC support structures. Each end cap consists of 144 petals, and the insertion of these petals into the end cap structure is referred to as TEC integration. The two end caps were integrated independently in Aachen (TEC+) and at CERN (TEC--). This note deals with the integration of TEC+, describing procedures for end cap integration and for quality control during testing of integrated sections of the end cap and presenting results from the testing
    corecore